Business Process Management (BPM) is a computer-based automation of an organization's business processes. It is composed of a sequence of activities (work tasks), interactions with human resources (users), or IT resources (software applications and databases), as well as rules controlling the progression of processes through the various stages associated with each activity.
At the various stages of the process, activities may require human interactions: typically user data entry through a form. They may also interact with IT applications or data sources to exchange information in various formats, such as files, e-mails, database content, etc.
One of the ways to automate processes is to develop or purchase an application that executes the required steps of the process; however, in practice, these applications rarely execute all the steps of the process accurately or completely. Another approach is to use a combination of software and human intervention; however this approach is more complex, making the documentation process difficult.
As a response to these problems, software has been developed that enables the full business process (as developed in the process design activity) to be defined in a computer format (e.g. XML). The XML source code is processed by an interpretor for execution by the computer. The system will either use services in connected applications to perform business operations (e.g. calculating a repayment plan for a loan) or, when a step is too complex to automate, will ask for human input. However, interpreting the XML source code requires limited computing resources and takes time. Because the XML source code is interpreted for execution, the execution of the business process is time consuming.